﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class EliminarHorarioSeccionMateria : System.Web.UI.Page
    {
        private Materia materia;
        private List<HorarioDeClase> horarios;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " + esc.NombreEscuela;

            String url = Request.Url.PathAndQuery;
            String[] s = url.Split('=');
            String codigo = s[1];
            codigo = codigo.Replace("%20", " ");
            try
            {
                SqlServerMateria consultar = new SqlServerMateria();
                materia = consultar.ConsultarMateria(codigo, 1);
                List<SeccionMateria> secciones = new List<SeccionMateria>();
                secciones = new SqlServerSeccionMateria().ConsultarSeccionesDeUnaMateria(materia);
                SeleccionarSeccion.DataSource = secciones;
                foreach (SeccionMateria sec in secciones)
                {
                    SeleccionarSeccion.Items.Add(sec.IdSeccionMateria + ": " + sec.Materia.Nombre + "- Seccion: " + sec.Codigo);
                }
                String _seccion = secciones.ElementAt(0).IdSeccionMateria.ToString();
                horarios = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion(_seccion);
                LlenarLabel();
                LlenarHorario(horarios);

            }
            catch (Exception ex)
            {
                LabelError.Text = "Ocurrio un error en la transaccion";
            }

        }

        public void LlenarHorario(List<HorarioDeClase> lista)
        {
            foreach (HorarioDeClase h in lista)
            {
                if (h.Dia.Contains("Lunes"))
                {
                    Label_HI_Lunes.Text = h.HoraInicio.ToString("hh:mm tt");
                    Label_HF_Lunes.Text = h.HoraFin.ToString("hh:mm tt");
                    Label_Salon_Lunes.Text = h.SalonDeClase.Nombre;
                }
                else if (h.Dia.Contains("Martes"))
                {
                    Label_HI_Martes.Text = h.HoraInicio.ToString("hh:mm tt");
                    Label_HF_Martes.Text = h.HoraFin.ToString("hh:mm tt");
                    Label_Salon_Martes.Text = h.SalonDeClase.Nombre;
                }
                else if (h.Dia.Contains("Miercoles"))
                {
                    Label_HI_Miercoles.Text = h.HoraInicio.ToString("hh:mm tt");
                    Label_HF_Miercoles.Text = h.HoraFin.ToString("hh:mm tt");
                    Label_Salon_Miercoles.Text = h.SalonDeClase.Nombre;
                }
                else if (h.Dia.Contains("Jueves"))
                {
                    Label_HI_Jueves.Text = h.HoraInicio.ToString("hh:mm tt");
                    Label_HF_Jueves.Text = h.HoraFin.ToString("hh:mm tt");
                    Label_Salon_Jueves.Text = h.SalonDeClase.Nombre;
                }
                else if (h.Dia.Contains("Viernes"))
                {
                    Label_HI_Viernes.Text = h.HoraInicio.ToString("hh:mm tt");
                    Label_HF_Viernes.Text = h.HoraFin.ToString("hh:mm tt");
                    Label_Salon_Viernes.Text = h.SalonDeClase.Nombre;
                }
            }
        }

        public void LlenarLabel()
        {

            //Inicializar Labels HF
            Label_HF_Lunes.Text = "--";
            Label_HF_Martes.Text = "--";
            Label_HF_Miercoles.Text = "--";
            Label_HF_Jueves.Text = "--";
            Label_HF_Viernes.Text = "--";

            //Inicializar Labels HI
            Label_HI_Lunes.Text = "--";
            Label_HI_Martes.Text = "--";
            Label_HI_Miercoles.Text = "--";
            Label_HI_Jueves.Text = "--";
            Label_HI_Viernes.Text = "--";

            //Inicializar Labels Salon
            Label_Salon_Lunes.Text = "--";
            Label_Salon_Martes.Text = "--";
            Label_Salon_Miercoles.Text = "--";
            Label_Salon_Jueves.Text = "--";
            Label_Salon_Viernes.Text = "--";
        }

        protected void BotonConsultar_Click(object sender, EventArgs e)
        {
            String[] s = SeleccionarSeccion.SelectedValue.Split(':');
            String _seccion = s[0];
            horarios = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion(_seccion);
            LlenarLabel();
            LlenarHorario(horarios);
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarMateriaHorarioConsulta.aspx");

        }

        protected void BotonEliminar_Click(object sender, EventArgs e)
        {
            String[] s = SeleccionarSeccion.SelectedValue.Split(':');
            String _seccion = s[0];
            try
            {
                int seElimino = new SqlServerHorarioClase().EliminarHorarioPorSeccion(_seccion);
                if (seElimino == 1)
                {
                    LabelError.Text = "Los horarios se eliminaron con exito";
                    LabelError.CssClass = "transaccionExitosa";
                    LabelError.ForeColor = System.Drawing.Color.Green;
                }
                else
                {
                    LabelError.Text = "Operacion Fallida: Ha ocurrido un error al momento de eliminar";
                    LabelError.CssClass = "transaccionFallida";
                    LabelError.ForeColor = System.Drawing.Color.Red;
                }
            }
            catch (Exception)
            {
                LabelError.Text = "Operacion Fallida: No se ha logrado realizar la transaccion";
                LabelError.CssClass = "transaccionFallida";
                LabelError.ForeColor = System.Drawing.Color.Red;
            }
            LabelError.Visible = true;
        }
    }
}